In cryptography, a block cipher may be a symmetric key cipher which operates on fixed-length groups of bits referred to as “blocks.” For example, during encryption, a block cipher may take a 128-bit block of plaintext as input and output a corresponding 128-bit block of ciphertext in accordance with a secret key. For decryption, the 128-bit block of ciphertext and the secret key may be used to determine the original 128-bit block of plaintext.
One type of block cipher is Advanced Encryption Standard (AES). AES-related computations generally operate in iterative loops. Each iteration of the loop computation may use a unique round key to encrypt plain-text to cipher-text or decrypt ciphertext into plaintext. Generally, the round keys are stored in memory, e.g., due to resource constraints. This however poses a potential security hole, as the stored keys may be accessed in an unauthorized fashion and be vulnerable to snooping.